1. Field of the Invention
The present invention relates generally to device testing processes, and more particularly, to methods and apparatus for developing testing systems for testing electrical devices.
2. Description of the Related Art
Development of a new device such as an integrated circuit, or other electronic device, requires extensive testing to determine if a proposed design meets the design performance requirements. One approach to developing a new device includes simulating the device such as by designing a computer program that simulates the operation of the device. Such a computer program is typically referred to as a device simulation. Device simulations are typically run in a test bench environment. Multiple test procedures or test cases are then applied to a device simulation running on the test bench. A test suite is a collection of test cases that test multiple functions of a simulated device.
Typically each test case is in the form of computer readable code executable by the test bench. A test case causes the test bench to apply stimuli to the device simulation and record the simulated device operation. Various functions of the simulated device can then be tested. Simulated device operations can include input, output, processing, events, signal levels, and any other device function.
Test cases are often written using object oriented programming languages such as C++, Java™ and other languages. Generally speaking, methods of a test object are designed to invoke the methods of a number of objects, thus causing very specific stimuli to be applied the device simulation.
Accordingly, the code programmed for each test case is specifically designed for each device to be tested. In practice, a test case for a device (e.g., a second-generation of the device) is typically developed by first selecting a similar device (e.g., a previous generation of the device) that is most similar to the device. The first test case for the similar device is selected because the first test case presumably, successfully tested the similar device and is therefore believed to be accurate, comprehensive and properly debugged. The first test case is then modified to test the specific function of the device to be tested.
As a result, the test cases often become difficult to determine precisely what functions of the device are being tested. Further, as the test cases become successively modified, the performance data can become more difficult to obtain and less accurate and less comprehensive. Accurate and comprehensive performance data is important so that a first device under test can be directly and accurately compared to another device under test (e.g., a second-generation device).
In addition, developing a new test suite for a second-generation device upon the test suite developed for a first generation device typically requires extensive man-hours to modify and debug. Further, if a fault is found in the new test suite and the fault is corrected during the testing or development of the second-generation device, then the fault may also apply to the first generation device. Therefore the test suite for the first generation device may also require a corresponding correction.
A test suite may include many hundreds of test cases that are similar. When a defect is found in a selected test case, often most or all of the similar test cases must also be corrected. Therefore, even a minor defect discovered in one test case in the new test suite, often results in extensive efforts to update each of the similar test cases in the new test suite and in any similar test suites.
In view of the foregoing, there is a need for a system and method for rapidly generating test cases that produce accurate, comprehensive test results, and have a testing scope that can be easily determined.